package com.mubai.activiti.service;

import com.mubai.activiti.domain.TaskVO;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * @author baichuanping
 * @create 2018-12-12
 */
public interface ActTaskService {
	List<TaskVO> selectTaskList(TaskVO taskVO);

	List<TaskVO> selectTodoTask(TaskVO taskVO);

	List<TaskVO>  selectInvolvedTask(TaskVO taskVO);

	/**
	 * 归档任务
	 * @param taskVO
	 * @return
	 */
	List<TaskVO>  selectArchivedTask(TaskVO taskVO);

	/** key 组名  value 代办任务*/
	Map<String, List<TaskVO>> selectGroupQueueTask(TaskVO taskVO);

	TaskVO  selectOneTask(String taskId);

	void completeTask(String taskId, Map<String, Object> variables);

	void complete(String taskId, String procInsId, String comment, String title, Map<String, Object> vars);


	String startProcess(String procDefKey, String businessTable, String businessId, String title, String userId, Map<String, Object> vars);

	String getFormKey(String procDefId, String taskDefKey);

	InputStream traceTaskPhoto(String processDefinitionId, String executionId);

	List<TaskVO> selectFinishedTask(TaskVO task);
}
